﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using Httlgd.DataCenter.Services.Core;
using Httlgd.DataCenter.Services.Sms.DataTransferObject;

namespace Httlgd.DataCenter.Services.Sms.ServiceLibrary
{
    [ServiceContract(Namespace = "Httlgd.DataCenter.Services.Sms.ServiceLibrary")]
    interface IGeneralDataService
    {
        #region Speaker Prefix
        [OperationContract(Name = "SaveSpeakerPrefix")]
        SpeakerPrefixDTO SaveSpeakerPrefix(SpeakerPrefixDTO speakerPrefix);

        [OperationContract(Name = "GetSpeakerPrefixByID")]
        SpeakerPrefixDTO GetSpeakerPrefixByID(int id);

        [OperationContract(Name = "DeleteSpeakerPrefix")]
        void DeleteSpeakerPrefix(int id);

        [OperationContract(Name = "GetAllSpeakerPrefix")]
        DataTransferObjectCollectionBase<SpeakerPrefixDTO> GetAllSpeakerPrefix();
        #endregion

        #region Speaker
        [OperationContract(Name = "SaveSpeaker")]
        SpeakerDTO SaveSpeaker(SpeakerDTO speaker);

        [OperationContract(Name = "GetSpeakerByID")]
        SpeakerDTO GetSpeakerByID(int id);

        [OperationContract(Name = "DeleteSpeaker")]
        void DeleteSpeaker(int id);

        [OperationContract(Name = "GetAllSpeaker")]
        DataTransferObjectCollectionBase<SpeakerDTO> GetAllSpeaker();
        #endregion

        #region ServiceType
        [OperationContract(Name = "SaveServiceType")]
        ServiceTypeDTO SaveServiceType(ServiceTypeDTO serviceType);

        [OperationContract(Name = "GetServiceTypeByID")]
        ServiceTypeDTO GetServiceTypeByID(int id);

        [OperationContract(Name = "DeleteServiceType")]
        void DeleteServiceType(int id);

        [OperationContract(Name = "GetAllServiceType")]
        DataTransferObjectCollectionBase<ServiceTypeDTO> GetAllServiceType();
        #endregion

        #region SermonCategory
        [OperationContract(Name = "SaveSermonCategory")]
        SermonCategoryDTO SaveSermonCategory(SermonCategoryDTO sermonCategory);

        [OperationContract(Name = "GetSermonCategoryByID")]
        SermonCategoryDTO GetSermonCategoryByID(int id);

        [OperationContract(Name = "DeleteSermonCategory")]
        void DeleteSermonCategory(int id);

        [OperationContract(Name = "GetAllSermonCategory")]
        DataTransferObjectCollectionBase<SermonCategoryDTO> GetAllSermonCategory();
        #endregion
    }
}
